package com.ruoyi.system.mapper;

import java.util.List;
import com.ruoyi.system.domain.Student;
import org.apache.ibatis.annotations.Param;

/**
 * 学生Mapper接口
 * 
 * @author ruoyi
 * @date 2024-02-25
 */
public interface StudentMapper 
{
    /**
     * 查询学生
     * 
     * @param studentId 学生主键
     * @return 学生
     */
    public Student selectStudentByStudentId(Long studentId);

    //根据学校ID和学生姓名查找该名学生的ID
    Student selectStudentIdToNameAndSid(@Param("sid") Integer sid, @Param("studentName") String studentName, @Param("cardNumber") String cardNumber);

    //批量添加学生信息时判断不可重复
    Student selectRepeatCardNumber(String cardNumber);

    //根据年级ID和班级ID筛选出对应学生
    List<Student> selectOneStudent(@Param("gid") Integer gid, @Param("cid") Long cid);

    //根据年级ID和班级ID筛选出对应学生(分班,导出学生部分信息,查找精确字段)
    List<Student> selectOneStudentMin(@Param("gid") Integer gid, @Param("cid") Long cid);

    /**
     * 查询学生列表
     * 
     * @param student 学生
     * @return 学生集合
     */
    public List<Student> selectStudentList(Student student);

    /**
     * 新增学生
     * 
     * @param student 学生
     * @return 结果
     */
    public int insertStudent(Student student);

    /**
     * 修改学生
     * 
     * @param student 学生
     * @return 结果
     */
    public int updateStudent(Student student);

    /**
     * 删除学生
     * 
     * @param studentId 学生主键
     * @return 结果
     */
    public int deleteStudentByStudentId(Long studentId);

    /**
     * 批量删除学生
     * 
     * @param studentIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteStudentByStudentIds(Long[] studentIds);
}
